home *** CD-ROM | disk | FTP | other *** search
- /*
- Copyright Cornell University 1986. All rights are reserved.
-
- */
-
- /* mode flags */
- #ifndef _EMDEF
- #define _EMDEF
-
- #ifndef _TYPES /* don't include system stuff if already included */
- #include <notice.h>
-
- #include <types.h>
- #include <stdio.h>
- #include <osutil.h>
- #include <quickdraw.h>
- #include <toolutil.h>
- #include <window.h>
- #include <control.h>
-
- #include <desk.h>
- #include <segment.h>
- #include <event.h>
- #include <packages.h>
-
- #include <resource.h>
- #include <font.h>
- #include <menu.h>
- #include <textedit.h>
- #include <dialog.h>
- #include <memory.h>
- #include <pb.h>
- #include <print.h>
- #include <scrap.h>
-
- #endif
-
-
- /* #ifdef MACTCP */
- #include <MacTCPCommonTypes.h>
- #include <TCPPB.h>
- /*
- #endif
- */
-
- #include <key.h>
- #include <q.h>
- #include <timer.h>
- #include <telnet.h>
- #include <ft.h>
- #include <emdefs.h>
-
- extern unsigned long getmya5(); /* returns old a5, sets our a5 global data * */
- extern short reopenconfig();
-
- struct hostsock {
- union {
- char bytes[4];
- unsigned long addr;
- } u;
- unsigned port; /* TCP port to connect to */
- short hostconnact; /* ID of macro to execute after host connection complete */
- };
-
- /*
- ibmcolormap array is organized as an array of RGB values:
-
- [unprotected, protected]
- X
- [normal, sense, intense, invis]
- X
- [foreground, background]
- */
-
- struct ibmcolormap {
- RGBColor colors[MAXCOLORS];
- } ; /* colormap */
-
- extern struct ibmcolormap ibmcolormap;
- extern struct ibmcolormap asccolormap;
-
-
-
- struct windtext { /* structure with items required for useful TE */
- TEHandle texthand; /* with a TextEdit box and a scrollbar */
- short textscrapped; /* the TE scrap has been touched and must be coerced */
- int FirstLine; /* the number of the line at the top */
- short textlines; /* # of lines in page */
- ControlHandle scrollhand; /* vertical scroll bar control */
- };
-
- /*
- this is the enormous window structure comprising everything
- the joint tradition of 3 separate programs, h19, tn, and tn3270,
- knows about a window.
-
- Major globals:
-
- keydp -> the topmost winds structure, to which user key and mouse
- routines refer;
- keywindow -> its WindowRecord;
-
- emdp -> the current output winds structure context to which emulator
- I/O routines refer;
- emwindow -> its WindowRecord;
- */
-
- struct winds {
- WindowPtr emwindow;
- WindowPtr iconwindow;
- WindowPtr textwindow;
-
- short conntype; /* 0 TCP 1 Serial Driver 2 Comm Mgr */
- short disposeonclose; /* close window/window document completely on close */
- Handle connmacro; /* handle to macro to execute on connection */
- Handle closemacro; /* handle to macro to execute before close */
- Handle hlasthost; /* TCP/IP host address resource handle c string */
- Handle hhostname; /* host name actually accessed pascal string */
-
- Handle clickmacro; /* macro to execute on double-click */
-
- short icon_up; /* icon window up */
-
- /* from config.c */
-
- AppFile appfile; /* SFGet/PutFile record */
- short resfid; /* resource file descriptor */
- short resvol; /* resource home volume */
- long resdir; /* resource home directory */
- short confchanged; /* the configuration has been modified */
- short newconf; /* this is a new, unopened configuration */
-
- /* .edit textedit window */
- short logsession; /* log session screen clears/scrollups in .edit */
- short hidetextwindow; /* textwindow: don't show the text window */
- short edit; /* the text edit window is up */
- short editload; /* load automatically on upload/download */
- short editupwrap; /* wrap automatically on upload */
- short editdownwrap; /* wrap automatically on download */
- TEHandle texthand; /* TE text appearing in textwindow */
- short textscrapped; /* the TE scrap has been touched and must be coerced */
- int FirstLine; /* the number of the line at the top */
- short textlines; /* # of lines in page */
- ControlHandle vBarHand; /* scroll bar control */
-
- /* save screen file output */
- short savefid; /* id of file opened for saving screens */
- SFReply reply; /* file open record */
-
- /* items for file logging */
- short filesession; /* log session in a file */
- SFReply logreply; /* log file open record */
- short logfid; /* id of file opened for logging session */
-
- short logerase; /* log/file text erased by ASCII emulator */
-
- /* per window variables telnet.c */
-
- struct hostsock fhost; /* host address */
- short connopen; /* is connection open */
- short telmode; /* telnet interpretation mode */
- short termtype; /* index for trying different types */
- struct ucb ucb; /* user preferences from config file */
- short subnegofail;
- short userquit; /* user quitting */
- char tnbinary; /* BINARY negotiated? (for 3270) */
- char tneor; /* EOR negotiated? (for 3270) */
- char tndata; /* flag that data has arrived on connection */
- char disableterm[12]; /* table for getting disabled termtypes */
- short termset; /* term type selected, OK to output... */
- short termrepeat; /* repeating last terminal type in list */
-
- /* TNdrvr interface vars */
- Boolean hycnewdata; /* new data has arrived since last driver call */
- Boolean hycactive; /* driver interface active */
- short hycconnwait; /* connection requested but not complete */
-
- /* per window vars from event.c */
-
- short backonly; /* run only in background */
- short autoshrink; /* shrink automatically on suspend/resume */
- char delayactions; /* hold macros until timer pops */
- unsigned long event_reg; /* flags for events that need servicing (mostly 3270) */
- short mfwait; /* wait for MF updates before drawing */
-
- /* mode flags */
-
- /* input control */
-
- short ibm_mode; /* use IBM 3270 rather than ASCII em I/O */
- short userxoff; /* user has done ^S */
- char delaytokens; /* hold macro tokens until timer pops */
- timer *token_tm; /* timer for resuming token interpretation */
-
- /* key.c */
-
- short ibm_keymode; /* differentiate for 7171 serial access */
- short keypadswitch; /* switch +/- on standard keyboard keypad */
-
- /* ASCII */
- short ba_bs; /* if FALSE, map BS to DELETE */
- short escmap;
- short crtonl; /* map carriage return to newline */
-
- /* IBM */
- short keypad; /* keypad mode */
- short typeahead; /* do typeahead */
- short pfshift; /* shift next PF key up by 12 */
- short pfdubshift; /* shift next PF key up by 24 */
-
- /* macro.c */
-
- short dokeymacros; /* like it says */
- short macroexecuting; /* prettywind tokens remain on q, the macro flag is highlighted */
- short keyaltset; /* match alt (mouse down) state when matching macro */
- struct keyxlist * keyxhead;
- struct token actqueue[MAX_Q]; /* TODO dynamic? the token buffer */
- short q_head;
- short q_tail;
- short q_cnt;
- char tokenhold; /* save tokens we've handed up so we can loop */
- char matchinput; /* match input loop mode */
- short loopcount; /* # of times to loop, -1 = forever */
- unsigned short tokencount; /* count of tokens in loop */
-
- /* state for token interpreter */
- int gotoy;
- int nselystart; /* selection rectangle */
- int nselxstart;
- int nselyend;
- int nselxend;
-
- /* drawing vars for all emulators screen.c vt100.c h19.c asciidraw.c */
-
- char emdisable; /* don't update screen */
- char dsdraw; /* use direct to screen drawing */
- short color; /* use color on the screen */
- short inselection; /* ascii flag for ds draw */
- Rect gdRect; /* dsdraw display global coordinates */
-
- short lastrow; /* ASCIIlast row of emulator, counting from 0 */
- short screensize; /* ASCII emulator screen size */
- short emliteral; /* ASCII literal output */
-
- /* the following are function pointers for directscreen v. quickdraw functions */
-
- /* font IDs */
-
- short normfont; /* normal font ID */
- short highfont; /* bold font ID */
- short vtfont; /* vt100 graphics font ID */
-
- int (*screen_upd)(); /* update the emulator screen */
- int (*updatewind)(); /* update the whole window */
- int (*clear_scr)(); /* clear the screen */
-
- /* IBM 3270 */
- int (*ch_draw)(); /* draw a single character */
- int (*str_draw)(); /* draw a string */
- int (*prepibmdraw)(); /* set up screen for drawing */
-
- /* ASCII routines */
- int (*scrollup)(); /* -> routine which does bit scrolling */
- int (*emstr)(); /* -> emstr(ptr, count) routine */
- int (*em)(); /* -> em(char) routine */
-
- /* BIGG variables following are copied to/from globals */
-
- /* shared by all emulators */
-
- /* direct to screen stuff */
-
- unsigned long modflg; /* BIGG line modified bit array */
- unsigned long clrflg; /* BIGG line cleared bit array */
-
- FONTS * thefont; /* BIGG default font */
- short ** startarr; /* BIGG dsdraw -> array of ptrs to scanline starts */
- short screenbytes; /* BIGG width of screen in bytes */
- short screenrem; /* BIGG screenbytes - std screen */
- short * screenbase; /* -> the screen PixMap */
-
- short xpos;
- short ypos; /* BIGG current x, y position */
-
- Rect zaprect; /* for ShieldCursor */
-
- /* h19 */
-
- short mode; /* BIGG interpretation mode of emulator */
- short inserton; /* BIGG insert mode */
- unsigned char attrib; /* BIGG normal/reverse mode for copy drawing */
- short wrap_around; /* BIGG wrap at end of line if true */
-
- unsigned char * charp; /* BIGG ASCII -> cursor location in charr */
- #ifdef VARVTSIZE
- unsigned char * charr; /* * character/attribute array for screen */
- char * tabset; /* * tab settings array */
- #else
- unsigned char charr[2 * SCREENSIZE];
- char tabset[MAXLINELENGTH];
- #endif
-
- unsigned char * charrend;
- unsigned char * atarr; /* attributes on screen SAME AS CHARREND! */
- unsigned char * secondline;
- unsigned char * lastline;
-
- long size23;
- short linecount; /* # of rows */
- short linelength; /* BIGG width of row */
- short lastcol; /* BIGG linelength - 1 */
- Rect bigrect; /* for line insert, delete -- surrounds em area at margin */
- Rect scrollrect; /* current scrolling rect */
-
- /* vt100; uses most h19 vars also */
-
- short vtmode; /* BIGG new mode holder for vt100 */
- unsigned short * argp; /* BIGG -> current argument */
- unsigned char charset; /* BIGG character set in use (normal, vtgraphics) */
-
- /* 3270 */
- /* variables important to the 3270 interpreter */
-
- unsigned char *scr_map; /* BIGG screen map */
- unsigned char *smap_end; /* BIGG end of map */
- unsigned char *scr_org; /* BIGG temporary base of map due to write+SBA only */
- unsigned char *current_attr; /* BIGG pointer to most recent attribute */
- unsigned char *cursor_ptr; /* BIGG current cursor position in screen map */
- unsigned char * firstp; /* BIGG ptr to first data byte processed for set_map */
- unsigned char realattr; /* BIGG mask for relevant attributes */
-
- short cmdstate; /* BIGG state of the emulator */
- unsigned char * savcurptr; /* BIGG saves curptr */
- unsigned short savcount; /* BIGG various counters which need to be saved between calls */
- short savdata; /* BIGG saves haddata */
-
- short scr_flag; /* BIGG */
-
- /* BIGG end of copy range */
-
- /* shared variables */
-
- /* cursor modes */
- short curson; /* cursor state, on or off */
- short blockcurs; /* block vs. underline cursor */
- short changecurs; /* make cursor blink */
- Rect cursrect; /* inviolable cursor Rect */
-
- /* set globals to certain screen constants to eliminate calculations */
-
- short voffset; /* offsets of em display from origin */
- short hoffset;
- short ctloffset;
-
- short fontsize; /* the usual wrong size spec, # bits above base */
- short lineheight; /* line height including leading */
- short fontheight; /* the actual height of font */
- short fontdescent; /* # of descending bits in font */
- short fontwidth; /* BIGG width of font */
-
- short bottommarg; /* bottom margin of emulator area */
- short rightmarg; /* right margin of emulator area */
- short mrecttop; /* offset to top of mouse tracking rectangle */
- short mrectbot; /* offset to bottom of mouse tracking */
-
- short curstop; /* top of the cursor */
-
- char cursorwait; /* cursor needs to be moved after mfwait */
-
- timer *sel_tm; /* timer for redrawing selection on screen */
-
- short selrectset; /* selection has been made */
- short selrectvis; /* selection is visible */
- short copytable; /* use table mode when copying selection? */
- Rect seltoprect; /* rectangle for top portion of selection range */
- Rect selmidrect; /* rectangle for middle portion of selection range */
- Rect selbotrect; /* rectangle for bottom portion of selection range */
- short seltopset;
- short selmidset;
- short selbotset;
- short selystart; /* x & y coordinates where the selection starts & ends */
- short selxstart;
- short selyend;
- short selxend;
- short starty; /* coordinates we do sel extends around */
- short startx;
- short selfirsttime;
-
- /* 3270 */
-
- short ayt_sent; /* if 1, Are You There has just been sent */
- unsigned char aid_key; /* most recent AID */
- short nullsareblanks; /* causes imbedded nulls to be sent as blanks */
- short squeezeblanks; /* squeeze blanks and not just nulls on insert */
- short shiftfield; /* shift all chars in field, not just row */
-
- struct ibmcolormap ibmcolormap; /* colormap, used for ascii too! */
-
- /* h19.c */
-
- short scrollcount; /* counts scrolled lines */
- short curseekmode; /* VI mode moves cursor w/ vi commands */
-
- /* vt100.c */
-
- short vtkeypad; /* user vt100 keypad mode */
- unsigned short argarr[MAXARGS]; /* arguments for ANSI mode */
- short argcount; /* # of arguments rec'd */
-
- short scrolltop; /* scrolling region top */
- short scrollbottom; /* scrolling region bottom */
- char vtaltkeypad; /* vt100 alternate keypad in effect */
- char vt52altkeypad; /* vt100 alternate keypad in effect */
- char vtaltcursor; /* vt alternate cursor mode */
- char vtnewline; /* LF == NEWLINE ANSI mode */
- char vtjumpscroll; /* jump/smooth scroll mode */
- char decom; /* DEC origin mode in effect */
- char wrapped; /* indicate wraparound was performed */
-
- short owrapped; /* following vars for save/restore cursor */
- short odecom;
- short ocharsetSO;
- short oxpos; /* saved cursor position */
- short oypos;
- unsigned char ocharset; /* saved charset */
- unsigned char oattrib; /* saved attrib */
-
- /* character set state */
- unsigned char charsetSO; /* G0 set shifted out? */
- unsigned char charsetG0; /* G0 character set */
- unsigned char charsetG1; /* G1 character set */
-
- /* h19key.c */
- timer * timer25; /* timer to reset the prompt line */
- Point penloc25;
- char line25[LINE25LEN];
-
- /* per window prettywind.c */
-
- BitMap toprectbm; /* bitmap copy of the top controls */
- Rect bmdestrect; /* the destrect */
- short h19right; /* right edge of emulator area */
- short h19flagcenter; /* point to place chars in labels */
-
- Rect qmarkrect; /* TODO delete ? question mark box filling q2; if cursor hits,
- q3 labels get drawn */
- Rect toprect; /* rectangle containing top controls */
- Rect countrect; /* frames the counters */
- Rect incountrect; /* blanks input count */
- Rect outcountrect; /* blanks output count */
- Rect shiftrect; /* PF shift label */
- Rect dubshiftrect; /* PF double shift label */
- Rect macrorect; /* macro key interpretation label */
- Rect syslockrect; /* IBM system lock label */
- Rect kbdlockrect; /* IBM keyboard lock label */
-
- /* controls on the window; emcursor.c prettywind.c */
-
- short iconhigh; /* is iconwindow highlighted? */
- ControlHandle q1controls[Q1BUTMAX]; /* buttons at top */
- short controlschanged; /* controls in toprect need to be redrawn */
- Rect shrinkrect; /* button at right which shrinks screen */
-
- /* menu */
-
- char * seltype; /* -> "Screen" or "Selection" */
-
- /* communication methods */
-
- /* pointers to i/o functions */
- int (*dotoken)(); /* -> current user input macro command handler */
- int (*sendchar)(); /* -> routine to send a character to the host */
- int (*sendstr)(); /* -> routine to send a string */
- int (*putflush)(); /* -> routine to flush pending sends */
- int (*putchar)(); /* -> routine to output a character */
-
- unsigned long in_cnt;
- unsigned long out_cnt; /* packet counts in and out */
-
- /* per window control structures for MacTCP in mactcp.c */
-
- long tcp_stream;
- short mtcpconnopen; /* mactcp: a connection has been made */
- short data_rcvd; /* data has been received on the stream */
- short closeflag; /* connection has been closed */
- short resending; /* TCP is resending... highlight counter */
-
- TCPiopb * tcp_conn;
- TCPiopb * mtstream; /* stream block for mactcp */
-
- short send_wait; /* # tcp sends to wait for PB */
- short resends; /* TCP # of resent packets */
-
- unsigned char * sendbuf; /* circular buffer for sending */
- unsigned char * fillp; /* -> next empty char pos in buffer */
- unsigned char * fillendp; /* -> end of buffer */
- unsigned char * sendp; /* -> first char waiting to be sent */
- unsigned short fillcount; /* # of chars in buffer */
- unsigned short waitcount; /* # of chars waiting to be sent */
- unsigned char * rcvbuf; /* buffer handed to TCP for rcvs */
-
- /* serial port variables */
-
- short usebport; /* TRUE use Printer Port, FALSE Modem Port */
- short autohangup; /* hangup serial line automatically on close */
- unsigned long kin_cnt;
- int xon; /* transmission on or off? */
-
- short refin; /* driver ref # */
- short refout;
- short baud; /* Apple Serial Driver arg masks */
- short parity;
- short stop;
- short data;
-
- /* per window vars from ft.c for file transfer */
-
- short downvol; /* download home volume for SFGET */
- long downdir; /* download home directory for SFGET */
- short downvref; /* volume ref num */
- short resvref; /* document volume ref num */
-
- Rect textrect;
-
- FILE *ft1;
- unsigned char ft_flag; /* ft3270 flag bits */
- unsigned char ack_buff[10];
-
- unsigned char *xfer1_buff; /* large transfer buffer [MAXLEN] */
- unsigned char *xfer2_buff; /* small transfer buffer [20]; */
- unsigned char *tbuff; /* [TBUFLEN]; */
- unsigned char *ft3270_buff; /* [TNFTLEN+10];*/
- unsigned char *ftbuff; /* disk buffer [DOSLEN]; */
-
- unsigned char ftsavebuf[MAXLEN]; /* TODO dynamic? saves tcp stream until EOR [TNFTLEN+10];*/
- unsigned char *ftsaveptr; /* TODO dynamic? ptr into buffer */
-
- short ftlen;
- short ftcnt;
- short fnamelen;
- short upload_cnt;
- short input_cnt;
- short input_state;
- unsigned char extra;
- unsigned char *ftptr;
- unsigned char *ftname;
- long fttotal;
- long ftxfered;
- long re_xmit;
- short cft_count; /* a counter for ft3270 */
-
- /* ftc19 packet structure used for upload & download */
-
- struct ftc19_pkt rcv_pkt;
- struct ftc19_pkt send_pkt;
-
- Rect arcrect; /* macintosh transfer status pie */
- short arcdeg;
-
- short ibm_type; /* kind of 3270 user has selected */
- struct ibmcolormap colormap; /* colormap of best matches */
-
- /* newly added vars */
- short notrackcurs; /* don't do cursor positioning with mouse */
- };
-
- /* end of winds struct */
-
- extern struct winds * conns[MAXWIND];
- extern short conncount;
-
- extern struct winds * emdp; /* pointer to emulator connection block we're using */
- extern struct winds * keydp; /* pointer to top window connection block we're using */
-
- extern WindowPtr keywindow; /* the top emulator window */
- extern WindowPtr iconwindow; /* top go-away window, shows tn3270 icon */
- extern WindowPtr emwindow; /* the output emulator window */
-
- extern EventRecord myEvent;
-
- /* various macintosh emulator vars and flags */
-
- extern short doubleclick; /* a double click has occurred */
- extern short mousecurson; /* is the mouse cursor hidden? */
- extern short inemulator; /* an emulator is in use */
- extern short clickdelay; /* # of ticks to wait before setting a selection */
- extern short modaldialog; /* is a modaldialog active outside the Mac task? skip event loop! */
- extern long creator; /* creator for file info */
-
- extern short autokey; /* indicates autokey is on */
- extern short autokeycommand; /* indicates autokey-command was done */
- extern short autokeypersist; /* indicates autokey has been on */
- extern timer *autokeywait;
- extern int clrautokeywait();
-
- extern short iplog; /* enable logging of IP packets UNUSED */
- extern unsigned long cticks; /* current # of ticks elapsed */
- extern unsigned long tickcursor; /* next tick count to service cursor */
- extern unsigned long tickstats; /* next tick count to display packet counters */
- extern unsigned long tickserial; /* next tick count to check serial port */
- extern short serialwait; /* how long the serial mgr thinks we should wait */
-
- extern short connavailable; /* an empty connection struct is lying about */
-
- extern short cutcpopen; /* Cornell TCP has been opened */
- extern short mactcpopen; /* macTCP TCP has been initialized */
- extern short macipopen; /* macTCP IP driver has been opened */
- extern short mtevent; /* Mactcp-- new data has arrived */
-
- extern short mtcpsendasync; /* use async send w/ MacTCP */
-
- extern char copyerr[];
- extern short mfpresent; /* we're under MultiFinder */
-
- extern long gettextscrap();
- extern long memtest(); /* forward declaration */
-
- extern short mfbackground; /* doesn't really belong here */
- extern short keyboard; /* keyboard type */
- extern short keypadswitch; /* switch "Standard" keyboard keypad -,+ */
-
- /* Cursors -- cross */
-
- extern Cursor target;
- extern Cursor blank;
- extern Cursor * thecursor;
-
- /* prettywind globals */
- extern short q3conth; /* height of quadrant 3 control button */
- extern short q3contskip; /* size of skip every 3 buttons */
-
- extern RgnHandle emclip; /* holds previous em clip rect */
- extern RgnHandle q3clip; /* for calculating new clip w/o q3 box */
- extern PicHandle shrinkpict; /* picture for shrink control */
- extern PicHandle tapepict; /* picture of cassette tape */
-
- extern char * nosessionstr; /* "No Active Session" */
- extern char * badaddress; /* "Invalid host address" */
-
- /* some important globals for scrinit.c follow */
-
- extern SysPtr paramptr; /* pointer to parameters for cursor blink time */
-
- /* stuff for character image drawing */
-
- extern FONTS font;
- extern FONTS invfont;
- extern FONTS boldfont;
- extern FONTS invboldfont;
- extern FONTS bvtfont;
- extern FONTS invbvtfont;
-
- extern RgnHandle updateRgn;
-
-
- extern short bkrd_act; /* is tcp running in background mode? */
-
- /* mouserect sizing and tracking of cursor */
-
- extern short trackon; /* cursor tracking flag */
- extern Rect mouserect; /* also used by h19curset to find the targeted x,y */
-
- extern Rect dragrect; /* the drag restriction rect */
-
- extern char inselection; /* flag that we are in selection range */
-
- extern int selrestore();
-
- extern long size23; /* size of char array less one line */
- extern short linecount; /* length of line in char array */
-
- extern short scrollcount; /* counts scrolled lines */
-
- extern unsigned long modmask[]; /* masks for modflg */
-
- /* emulator routine vectors */
-
- extern int vt100();
- extern int vt100str();
- extern int h19();
- extern int h19str();
-
- extern short trydsdraw; /* *try* to use direct to screen drawing */
- extern short riskydsdraw; /* only use dsdraw in FrontWindow() */
-
- extern char zapuline; /* dsdraw underline flag */
- extern char zapinvert; /* dsdraw underline flag--font is inverted */
-
- extern char skiparr[]; /* TRUE if character is a space */
- extern char allskiparr[]; /* alternate all-TRUE skiparr */
-
- extern char isdiacritic[]; /* array of 0-width chars for QD drawing */
-
-
- /* emcursor stuff */
-
- /* q3 vars */
- extern char * q3strings[]; /* strings for labels */
- extern char q3controls[]; /* ASCII send strings */
- extern char q3vtcontrols[]; /* ASCII VT100 send strings */
-
- extern short topcontexist; /* true if top controls exist */
-
- /* token related stuff from key.c */
- #define MAX_Q 1000 /* large, mouse tracking adds a lot of actions */
-
- extern short courierprint; /* print using Courier on LaserWriters? */
-
- /* from config.c */
- extern short appresfid; /* application resource file descriptor */
- extern short appvol; /* application home volume */
- extern long appdir; /* application home directory */
- extern short appvref; /* application volume ref num */
-
- extern char * setfile; /* settings default filename */
- extern char * untfile; /* settings default filename */
-
- extern short mfbackonly; /* run only in background */
-
- /* from scrinit.c */
- extern char * skiptest; /* current skip array to use in zap */
-
-
- /* BIGG per window variables copied into globals for better speed
- and to avoid modifying zap.asm */
-
- /* shared BIGG */
- extern FONTS *thefont; /* BIGG */
- extern short xpos, ypos; /* BIGG current x, y position */
- extern unsigned long modflg; /* BIGG line modified bit array */
- extern unsigned long clrflg; /* BIGG line cleared bit array */
- extern short fontwidth; /* BIGG width of font */
- extern short ** startarr; /* BIGG dsdraw -> array of ptrs to scanline starts */
- extern short screenbytes; /* BIGG width of screen in bytes */
- extern short screenrem; /* BIGG screenbytes - std screen */
-
- /* h19 BIGG */
- extern unsigned char * charp; /* BIGG cursor loc for these arrays */
- extern short mode; /* BIGG interpretation mode of emulator */
- extern short inserton; /* BIGG insert mode */
- extern short linelength; /* BIGG width of row */
- extern short lastcol; /* BIGG linelength - 1 */
- extern unsigned char attrib; /* BIGG normal/reverse mode for copy drawing */
- extern short wrap_around; /* BIGG wrap at end of line if true */
-
- /* 3270 BIGG */
- extern short cmdstate; /* BIGG state of the emulator */
- extern unsigned char *scr_map; /* BIGG screen map */
- extern unsigned char *smap_end; /* BIGG end of map */
- extern unsigned char *current_attr; /* BIGG pointer to most recent attribute */
- extern unsigned char *cursor_ptr; /* BIGG current cursor position in screen map */
- extern unsigned char * firstp; /* BIGG ptr to first data byte processed for set_map */
-
-
- extern short scr_flag; /* BIGG */
-
- /* vt100 BIGG */
-
- extern short vtmode; /* BIGG new mode holder for vt100 */
- extern unsigned short * argp; /* BIGG -> current argument */
-
-
- /* end BIGG vars */
-
- extern short * chofftab9; /* array of character offsets to avoid multiplies */
- extern short * chofftab12; /* array of character offsets to avoid multiplies */
-
- /* assembly utility vars */
- extern long long1;
- extern long long2;
- extern long long3;
- extern long long4;
-
- extern TEHandle helptehand;
- extern WindowPtr helpwind;
- extern long filltimeout;
-
- extern short edresetselect; /* reset selection after emulator edit action */
-
- extern char * malloc();
-
- extern short quitonclose; /* quit when no windows open */
-
- extern short tftpopen; /* has tftp been initialized? */
- extern short tftpserve; /* act as a tftp server */
- extern short tftpask; /* query user about transfers */
-
-
- extern unsigned long cursalarm; /* tick count at which to change cursor */
-
- extern Rect boxrect; /* box in which the q3 button labels are drawn */
-
- /* 3270 */
-
- extern unsigned char ebctoasc[]; /* pointer to array containing EBCDIC chars */
- extern unsigned char asctoebc[]; /* pointer to array containing ASCII chars */
-
- /* a structure to save font information for restoration */
-
- struct fontsave {
- short fontsize;
- short fontid;
- };
-
-
-
- #endif
-
-
- Handle setmacro();
-
-